home *** CD-ROM | disk | FTP | other *** search
-
-
- /************************************************************************
- *
- * clean.rh
- *
- * This is an #include file for the Rayshade Standard Header
- * Files. It defines the "clean" superprimitives in the package.
- *
- * Please do not edit this file, or any of the other files in
- * this package! Make additions to these in your own separate
- * file. If you think you have something that should be added
- * permanently, please send it to Larry Coffin and/or David
- * DeBry (email addresses listed below). If we include it in
- * the next release, we'll put your name in the contributor's
- * list.
- *
- * Contributors (in alphabetical order):
- * Larry Coffin <lcoffin@clciris.chem.umr.edu>
- * Craig Kolb <cek@Princeton.EDU>
- * David DeBry <ddebry@dsd.es.com>
- * Stuart Warmink <sw@groucho.att.com>
- */
-
-
- #ifndef RSHF_CLEAN
- #define RSHF_CLEAN
-
- #include "rounded.rh"
-
- #define RSPtoothbrush(prefix, surf) \
- RSProundedbox(name RSPtb_handle_tmp, -5.5, -.5, -.4, 5.5, .5, .4, .2) \
- \
- name RSPtb_handle object RSPtb_handle_tmp \
- translate -5.5 0 0 \
- \
- name RSPtb_basic_cone \
- list \
- disc (.4/ cos(dtor*13)) 0 0 0 -1 0 0 \
- cone (.4/ cos(dtor*13)) 0 0 0 \
- (.25/ cos(dtor*13)) 5 0 0 \
- disc (.25/ cos(dtor*13)) 5 0 0 1 0 0 \
- end \
- \
- name RSPtb_extension object RSPtb_basic_cone \
- scale 1 1.25 1 \
- rotate 0 1 0 13 \
- translate (-0.2 - (0.4*tan(dtor*13))) 0 0 \
- \
- name RSPtb_basic_cylinder \
- list \
- disc 1 1 0 0 1 0 0 \
- cylinder 1 1 0 0 -1 0 0 \
- disc 1 -1 0 0 -1 0 0 \
- end \
- \
- name RSPtb_head_end \
- union \
- torus 0.6 0.25 0 0 0 0 0 1 \
- object RSPtb_basic_cylinder \
- scale 0.25 0.6 0.6 \
- rotate 0 0 1 90 \
- rotate 1 0 0 90 \
- end \
- \
- name RSPtb_head_middle \
- union \
- box 1.0 0.6 0.25 -1.0 -0.6 -0.25 \
- list \
- object RSPtb_basic_cylinder \
- scale 1.0 0.25 0.25 \
- translate 0 0.6 0 \
- object RSPtb_basic_cylinder \
- scale 1.0 0.25 0.25 \
- translate 0 -0.6 0 \
- end \
- end \
- \
- name RSPtb_head_body \
- union \
- object RSPtb_head_middle \
- list \
- object RSPtb_head_end \
- translate 1.0 0 0 \
- object RSPtb_head_end \
- translate -1.0 0 0 \
- end \
- end \
- \
- name RSPtb_bristle \
- object RSSbristle_white() RSPtb_basic_cylinder \
- scale 0.7 0.13 0.13 \
- rotate 0 1 0 90 \
- translate 0 0 0.7 \
- texture bump 1 scale .01 .01 10 \
- \
- name RSPtb_bristle_set \
- list \
- object RSPtb_bristle translate 0.2 -0.5 0 \
- object RSPtb_bristle translate 0.2 0.5 0 \
- object RSPtb_bristle translate 0.2 0.0 0 \
- object RSPtb_bristle translate 0.4 -0.25 0 \
- object RSPtb_bristle translate 0.4 0.25 0 \
- end \
- \
- name RSPtb_bristles \
- list \
- object RSPtb_bristle_set \
- object RSPtb_bristle_set translate 0.4 0 0 \
- object RSPtb_bristle_set translate 0.8 0 0 \
- object RSPtb_bristle translate 1.4 0 0 \
- object RSPtb_bristle_set translate -0.4 0 0 \
- object RSPtb_bristle_set translate -0.8 0 0 \
- object RSPtb_bristle_set translate -1.2 0 0 \
- object RSPtb_bristle translate -1.2 -0.25 0 \
- object RSPtb_bristle translate -1.2 0.25 0 \
- end \
- \
- name RSPtb_head \
- grid 10 5 5 \
- difference \
- object RSPtb_head_body \
- object RSPtb_bristles \
- scale 1.001 1.001 1.001 \
- end \
- object RSPtb_bristles \
- end \
- \
- name RSPtb_brush \
- grid 15 5 10 \
- union \
- object RSPtb_handle \
- union \
- object RSPtb_extension \
- object RSPtb_head \
- translate \
- (-0.2 - (0.4*tan(dtor*13)) + (5*cos(dtor*13)) + 1.0 -(0.2*tan(dtor*13))) \
- 0 (-5*sin(dtor*13)) \
- end \
- end \
- end \
- \
- prefix object surf RSPtb_brush
-
- #define RSPsoapbar(prefix, surf) \
- RSProundedbox(name RSPsoap_tmp, -2, -1.25, -1.25, 2, 1.25, 1.25, 0.8) \
- scale 2 2 1 \
- RSTlightgray_marb(6,1,1) \
- translate 0 0 -0.1 \
- prefix object surf RSPsoap_tmp
-
- #define RSPsoap_dish(prefix, surf) \
- name RSPsd_ridge \
- list \
- disc 0.5 0 4.5 0 0 1 0 \
- cylinder 0.5 0 4.5 0 0 -4.5 0 \
- disc 0.5 0 -4.5 0 0 -1 0 \
- end \
- name RSPsd_holder union \
- union \
- difference \
- RSProundedbox(, -7, -4.5, -1, 7, 4.5, 1, 0.5) \
- RSProundedbox(, -6, -3.5, -2, 6, 3.5, 2, 0.9) \
- translate 0 0 2.25 \
- end \
- list \
- object RSPsd_ridge translate 4 0 0.0 \
- object RSPsd_ridge translate 2 0 0.0 \
- object RSPsd_ridge translate 0 0 0.0 \
- object RSPsd_ridge translate -2 0 0.0 \
- object RSPsd_ridge translate -4 0 0.0 \
- end \
- end \
- box 5 0 -0.75 -5 0.5 0.75 \
- translate 0 -4.5 0 \
- end \
- prefix object surf RSPsd_holder
-
- #define RSPsoap_and_dish(prefix, s_surf, d_surf) \
- prefix grid 10 8 10 \
- RSPsoap_dish(, d_surf) \
- RSPsoapbar(, s_surf) \
- rotate 0 0 1 -6 \
- translate -0.3 -0.2 (0.5 + 1.25) \
- end
-
- #define RSPglass(prefix, surf) \
- name RSPglass_tmp union \
- torus 0.95 0.06 0 0 2 0 0 1 \
- difference \
- list /* outer glass */ \
- cone 0.9 0 0 -0.001 1.0 0 0 2 \
- disc 1 0 0 2 0 0 1 \
- disc 0.9 0 0 -.001 0 0 -1 \
- end \
- list /* inner glass */ \
- cone 0.7 0 0 0.1 0.9 0 0 2.2 \
- disc .9 0 0 2.2 0 0 1 \
- disc .7 0 0 0.1 0 0 -1 \
- end \
- end \
- end \
- texture bump 0.2 scale .2 .2 .2 \
- prefix object surf RSPglass_tmp
-
- #define RSPglass_holder(prefix, surf) \
- name RSPgh_unit_cyl \
- list \
- disc 1 0 0 1 0 0 1 \
- cylinder 1 0 0 0 0 0 1 \
- disc 1 0 0 0 0 0 -1 \
- end \
- \
- name RSPgh_indent_big \
- union \
- object RSPgh_unit_cyl \
- scale 3.5 3.5 0.5 \
- translate 0 0 0.3 \
- union \
- object RSPgh_unit_cyl \
- scale 3.2 3.2 0.4 \
- union \
- torus 3.2 0.3 0 0 0.3 0 0 1 \
- difference \
- object RSPgh_unit_cyl \
- scale 3.8 3.8 0.4 \
- translate 0 0 0.7 \
- torus 3.8 0.3 0 0 0.7 0 0 1 \
- end \
- end \
- end \
- end \
- \
- name RSPgl_indent_small \
- union \
- object RSPgh_unit_cyl \
- scale 0.6 0.6 3 \
- translate 0 0 -2.9 \
- difference \
- object RSPgh_unit_cyl \
- scale 0.9 0.9 0.4 \
- torus 0.9 0.3 0 0 0 0 0 1 \
- end \
- end \
- translate 0 0 -0.3 \
- \
- name RSPgh_holes \
- list \
- object RSPgh_indent_big \
- object RSPgl_indent_small \
- translate -5.5 -2.8 1 \
- object RSPgl_indent_small \
- translate 5.5 -2.8 1 \
- object RSPgl_indent_small \
- translate -5.5 2.8 1 \
- object RSPgl_indent_small \
- translate 5.5 2.8 1 \
- end \
- \
- name RSPgh_holder \
- grid 15 15 15 \
- union \
- difference \
- RSProundedbox(, -7, -4.5, -1, 7, 4.5, 1, 0.5) \
- object RSPgh_holes \
- end \
- box 5 0 -0.75 -5 0.5 0.75 \
- translate 0 -4.5 0 \
- end \
- end \
- \
- prefix object surf RSPgh_holder
-
- #endif /* ifndef RSHF_CLEAN */
-
-